🔥 "เรื่องอื่นอาจจะประนีประนอมได้ .. แต่เขียนโค้ดสไตล์มั่วซั่ว ประนีประนอมไม่ได้เด็ดขาดดด !"
.
หลายคนน่าจะเคยเจอปัญหากันมาบ้างไม่ว่าจะเป็น
.
🤣 "เมื่อวันก่อนตรูเขียนอะไรลงไปเนี่ยยย !?" จนไปถึง "งงจัด เมื่อเพื่อนร่วมทีมส่งงานมาให้ช่วยดู"
.
ปัญหานี้จะหมดไปถ้าเรารู้ และ เข้าใจสิ่งที่เรียกว่า Coding Style ซึ่งจริง ๆ แล้วในหลาย ๆ ภาษาก็มีให้เราได้อ่านอยู่
.
✅ โดยเจ้าสิ่งนี้จะเป็น "คำแนะนำ" ในการเขียนโค้ดที่ดีของแต่ละภาษา หรือ แต่ละองค์กร ที่ได้มีเกณฑ์ต่าง ๆ กำหนดไว้แล้วนั่นเอง
.
ไม่ว่าจะเป็นเรื่องทั่วไปอย่าง
.
▶️ ควรตั้งชื่อตัวแปรแบบไหน ? ชื่อฟังก์ชันควรเป็นอะไรดี ?
.
▶️ การ Import ของจากข้างนอกมาใช้ อะไรควรทำก่อน หลัง หรือ ไม่ควร ?
.
▶️ จนไปถึง การออกแบบเงื่อนไขการทำงานควรออกแบบอย่างไร ?
.
ซึ่งแน่นอนว่าคำแนะนำที่ดีเหล่านี้จะช่วยให้โปรเจคของเราผ่านไปได้โดยราบลื่นนั่นเอง หากนำมาใช้ในทีมด้วยก็ยิ่งทำให้พวกเราเข้าใจตรงกันได้มากขึ้น
.
"มันเลยเปรียบเสมือนข้อตกลงในการทำงานร่วมกันนั่นเอง <3"
.
แต่จะต้องบอกก่อนนะว่า ไม่ใช่ทุกงานที่เหมาะกับ Coding Style นั้น ๆ หรือ ไม่ใช่ทุกปัญหาจะมีใน Coding Style บอกว่าแก้ไขยังไง หลายครั้งเราอาจจะต้องเพิ่มเติมเอาเอง
.
⚠️ "แต่สิ่งที่เพิ่มเติมจะต้องคุยกันในทีมให้เคลียร์ก่อนเสมอนะ !"
.
ดังนั้นวันนี้เรามาดู Coding Style Guide ของแต่ละภาษาไปพร้อมกันเลยดีกว่า !! (บางภาษาอาจมีตัวน่าสนใจมากกว่า 1 ตัว แอดก็รวมไว้ให้แล้วจ้า)
.
👉 ภาษา Java
.
http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
https://google.github.io/styleguide/javaguide.html
.
👉 ภาษา C
.
http://www.maultech.com/chrislott/resources/cstyle/indhill-annot.pdf
http://www.maultech.com/chrislott/resources/cstyle/Peter_CStyleGuide.pdf
.
👉 ภาษา C++
.
http://www.maultech.com/chrislott/resources/cstyle/Wildfire-C++Style.html
http://www.maultech.com/chrislott/resources/cstyle/CppCodingStandard.html
.
👉 ภาษา Python
.
https://www.python.org/dev/peps/pep-0008/
.
👉 ภาษา C#
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index
.
👉 ภาษา JavaScript
.
https://github.com/airbnb/javascript
http://google.github.io/styleguide/javascriptguide.xml
https://www.w3schools.com/js/js_conventions.asp
.
👉 ภาษา Dart
https://dart.dev/guides/language/effective-dart/style
.
👉 ภาษา PHP
http://www.php-fig.org/psr/psr-1/
http://pear.php.net/manual/en/standards.php
.
👉 ภาษา Objective-C
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html
.
👉 ภาษา Kotlin
https://kotlinlang.org/docs/reference/coding-conventions.html
.
👉 ภาษา Swift
https://github.com/raywenderlich/swift-style-guide
.
👉 ภาษา Visual Basic.NET
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index
.
👉 ภาษา Ruby
https://github.com/bbatsov/ruby-style-guide
https://github.com/airbnb/ruby
.
👉 ภาษา R
http://web.stanford.edu/class/cs109l/unrestricted/resources/google-style.html
.
👉 ภาษา Go
https://golang.org/doc/effective_go.html
.
"เรียบร้อย ครบจบทุก Guideline ใครที่อยากทำงานกับทีมง่าย ๆ แนะนำให้ลองใช้กันดูได้เลยจ้า" <3 <3 <3
.
#borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
同時也有1部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,เข้าใจไวยากรณ์พื้นฐานของภาษา C++ อันได้แก่ 1) รูปแบบประโยคคำสั่ง และการจบประโยคคำสั่งด้วยเครื่องหมาย ; (semicolon) 2) การใช้ white spaces (space, tab)...
「coding style c」的推薦目錄:
- 關於coding style c 在 BorntoDev Facebook 的最讚貼文
- 關於coding style c 在 Eric's English Lounge Facebook 的最佳貼文
- 關於coding style c 在 Johntool-工具王阿璋 Facebook 的最佳解答
- 關於coding style c 在 prasertcbs Youtube 的最讚貼文
- 關於coding style c 在 [討論] 對於同事的coding style感到很感冒- 看板C_and_CPP 的評價
- 關於coding style c 在 Coding Style 的評價
- 關於coding style c 在 Recommended C style and coding rules - GitHub 的評價
- 關於coding style c 在 Coding Standards for pure C (not C++) - Stack Overflow 的評價
- 關於coding style c 在 Coding Style - PatrickatGit/LoveMatch Wiki 的評價
coding style c 在 Eric's English Lounge Facebook 的最佳貼文
[教育資源] 美國哈佛大學線上課程
Here are more free classes from Harvard while we are stuck at home waiting for school to reopen! The following are seven courses that will help prepare you for the challenges of today’s dynamic and fast-changing world.
當我們被困在家等待學校重新開放時,有更多來自哈佛大學的免費課程提供給大家! 這裡提供七項課程來幫助大家,應對來自當今這充滿活力與快速變化的世界的挑戰。
★★★★★★★★★★★★
1. Introduction to Computer Science 電腦科學導論
https://www.edx.org/course/cs50s-introduction-to-computer-science
Knowing how to code is a vital skill in in today’s digital world. This entry level course teaches the basics of computational thinking, programming problem solving, data structures, and web development, among other things. It will leave the learner able to code in several languages including C, Python, and Java.
在當今的數位世界中,知曉如何編碼乃是至關重要的技能。 本入門課程教授運算思維、程式編寫與問題解決、資料結構和網頁開發等基礎知識。 它將使學習者能夠使用多種程式語言包括C,Python和Java進行編碼。
★★★★★★★★★★★★
2. The Architectural Imagination 建築的想像力
https://www.edx.org/course/the-architectural-imagination
Art and science are often viewed in opposition to one another, but in the field of architecture they meet in fantastic and beautiful ways. In this class, students will learn both the technical and cultural aspects of architecture, and gain a better understanding of how the buildings we inhabit relate to history, values, and pragmatic concerns.
人們常常將藝術與科學放在對立面,但在建築的領域,它們以奇妙而優美的方式相遇。在本課程中,學生將學習建築的技術和文化層面,並更好地了解我們所居住的建築與歷史、價值和實用主義的關係。
★★★★★★★★★★★★
3. Super-Earths and Life 超級地球與生命
https://www.edx.org/course/super-earths-and-life
What life lies beyond our small world? Thirty years ago we only knew about nine planets; today we know of thousands nearby stars. In this course, students will learn about exoplanets, which ones might be the best candidates for harboring life, and why those planets are of the greatest interest. Combining concepts in astronomy and biology which have rarely been put together before, the class is an excellent introduction to one of the most interesting eras in astrobiology; today.
在我們的小小世界之外,還有什么生命存在? 三十年前,我們只知道九大行星。 如今,我們知道附近有數千顆恆星在沿著軌道運行著。 在本課程中,學生將學習系外行星的知識,哪些可能是庇護生命的最佳選擇,以及為什麼這些行星最受關注。該課程將天文學和生物學的概念相結合乃少有前例,這堂導論在如今這個天文生物學領域中最有趣的時代之一是極精彩的。
★★★★★★★★★★★★
4. Leaders of Learning 學習的領導者
https://www.edx.org/course/leaders-of-learning
How do you learn? Why do you learn? Can you name three people who would share your answers? In this class, students will identify their own style of learning and find out how that style fits into the ever-changing landscape of education. Later lectures focus on how to apply that knowledge to leadership, organizational structure, and the future of learning.
你如何學習? 你為什麼要學習? 你能說出三個可以分享答案的人嗎? 在本課程中,學生將辨認自己的學習風格,並了解該風格如何適應不斷變化的教育環境。 後段課程聚焦於如何將這些知識應用於領導力、組織結構和未來。
★★★★★★★★★★★★
5. Using Python for Research 運用Python於研究
https://www.edx.org/course/using-python-for-research
Do you want to learn to code, and then learn how to actually use it? In this course, students will review the basics of the Python coding language and then learn how to apply that knowledge to research projects by means of tools such as NumPy and SciPy. This class is an intermediate level course, and a basic understanding of the Python language is ideal before beginning.
你想學習編碼,然後學習如何實際使用它嗎?在本課程中,學生將回顧Python編碼語言的基礎知識,然後學習如何通過NumPy和SciPy等工具將這些知識應用於研究計畫。 該課程是中級課程,在上課之前對Python語言有基本的了解為佳。
★★★★★★★★★★★★
6. American Government 美國政府
https://www.edx.org/xseries/harvardx-us-government
The federal government of the United States can seem like a far off and alien system, one which acts in strange ways; but it is a powerful force in the life of every American. To not understand how it works, and your place in it as a citizen and voter, is to be an irresponsible citizen. This course introduces students to the function, history, institutions, and inner workings of American government. No previous study or understanding of American politics is required, making the course ideal for non-American students who want to understand what exactly is going on there.
美國聯邦政府看起來像個運作方式奇特,遙不可及的陌生體系。 但在每個美國人生活中這是一股強大的力量。 如果不了解它是如何運作的,以及自己作為公民和選民在其中所處的位置,會成為不負責任的公民。 本課程向學生介紹美國政府的職能、歷史、機構及其內部運作。 無需對美國政治的事前學習與了解,使該課程成為想要了解美國到底發生了什麼的非美國學生的理想選擇。
★★★★★★★★★★★★
7. Humanitarian Response to Conflict and Disaster 人道主義對衝突與災難的應對
https://www.edx.org/course/humanitarian-response-to-conflict-and-disaster
We live in a world with staggering humanitarian crises, and responses to them that are often lacking. In this class, students will ask questions on how to deal with humanitarian disasters through the case studies of Zaire, Syria, The Balkans, and elsewhere. The history of humanitarian responses, and the frameworks that those responses past and present operate in, will be covered as well, and students will be challenged to ask if they remain sufficient.
我們生活在充滿令人震驚的人道主義危機的世界中,而對這些危機往往缺乏應對。 在本課程中,學生將通過薩伊、敘利亞、巴爾幹地區和其他地區的案例研究,提出有關如何應對人道主義災難的問題。本課程還將涵蓋人道主義應對的歷史以及過去與現在的應對所運行的框架,並且挑戰學生去提出這些應對是否足夠。
★★★★★★★★★★★★
美國名校的免費線上課程 (MOOCs)
https://bit.ly/2Um51WO
英國名校MOOC平台
https://bit.ly/3eYUOYe
留學獎學金: https://bit.ly/3e9vrT0
★★★★★★★★★★★★
英文資料來源: https://bit.ly/2Y7p1gR
圖片來源: https://bit.ly/2UipYC2
★★★★★★★★★★★★
教育時評:http://bit.ly/39ABON9
coding style c 在 Johntool-工具王阿璋 Facebook 的最佳解答
【#程式教學】打程式「安捏母湯」啦!
☑️如何保持良好的 Coding Style?
不論在各種程式語言中,保持良好的 Coding Style 都是很重要的😌😌😌
就別說酒醉起來認不得自己的程式碼有多糗了🤢想看糗事,請追蹤上一篇貼文:Code 是什麼?Coding Style 是什麼?
良好的 Coding Style 可以讓程式邏輯更容易被瞭解,也可以增加專案的易讀性和維護性、間接加快開發速度。阿璋會列出幾點重要的 Coding Style,就讓我們一起看下去吧🙌🏻!
1️⃣變數命名
我們會為每個參數取上方便記憶、容易理解的名稱,而不會把電腦叫做a,滑鼠叫做aa,鍵盤取作aaa之類。因此,一個好的變數名稱,應該會讓人一眼就可以猜出他的功能。
2️⃣縮排
Code 是層次分明的,像是 for 迴圈、if 判斷是一整個區塊,這時候就可以用適當的縮排來強調這些層次的關係。
像是 Python 就要求一定要縮排,如果沒有加入 4 個 Space 就會執行錯誤🙅🏻。
3️⃣換行
C/C++ 的指令是以「行」為單位的,在每個分號之前就是一行指令。確實把行斷開,可以比較容易看出程式的結構,就像是寫作文不可能不換段落或是寫標點符號,這絕對會被老師打出3級分啊💀
4️⃣註解
盡量提醒自己,當自己的程式碼無法自己說話時,就必須幫程式碼說話👄
在每個 Function 開頭加入一段註解,說明這個 Function 的功能、參數、輸入、輸出。
☑️Coding Style 最重要的目標在於增加程式的易讀性與強健性。只要符合這兩點,不但可以增加專案的開發速度、甚至也能增強程式的可維護性🦾
請注意,有些 Coding Style 是必須遵守的;有些 Coding Style 則是會根據個人/團隊的使用習慣、見解而有所改變👥,這部分的 Coding Style 只是阿璋提出一些建議與經驗來供讀者參考,最終是否要採用還是以專案一致性與習慣為主唷🧠
☑️你有更了解Coding Style 了嗎?
想知道更多?
【歡迎追蹤Johntool-工具王阿璋 @johntooltw ↓↓↓】
facebook►
https://www.facebook.com/JohntoolTW
instagram►
https://www.instagram.com/johntooltw
收到更多 #程式教學 #不務正業工程師 系列!
#程式 #程式語言 #程式入門 #engineer #engineering #學習 #study #coding #code #程式設計 #program #programming #專案 #軟體工程 #團隊合作 #分享 #share #Johntool #工具王阿璋
coding style c 在 prasertcbs Youtube 的最讚貼文
เข้าใจไวยากรณ์พื้นฐานของภาษา C++ อันได้แก่
1) รูปแบบประโยคคำสั่ง และการจบประโยคคำสั่งด้วยเครื่องหมาย ; (semicolon)
2) การใช้ white spaces (space, tab) ในภาษา C++
3) เข้าใจถึง C++ ซึ่งเป็นภาษาแบบ Case sensitive คือ ตัวอักษรตัวใหญ่และตัวเล็กมีความแตกต่างกัน เช่น ตัวแปรชื่อ story กับ Story จะถือว่าเป็นคนละตัวกัน รวมถึงชื่อของฟังก์ชันที่สร้างขึ้นด้วย
4) รูปแบบการเขียนโค้ด (coding style) เพื่อให้อ่านได้ง่าย
ดาวน์โหลดไฟล์ตัวอย่างได้ที่ https://goo.gl/UTaY8R
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
playlist สอนภาษา C++ ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
playlist สอนภาษา C เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
playlist สอนภาษา C# ► https://www.youtube.com/playlist?list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
playlist สอนภาษา Java ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
playlist สอนภาษา Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
playlist สอนภาษาไพธอน Python OOP ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
playlist สอน Python 3 GUI ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
playlist สอนภาษา PHP เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
playlist สอนภาษา R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp

coding style c 在 Coding Style 的推薦與評價
要盡量的提醒自己,當自己的程式碼無法自己說話時,就必須幫程式碼說話。在C++裡面,註解可以. 單行或多行。 單行. 多行. // 這是單行註解. ... <看更多>
coding style c 在 Recommended C style and coding rules - GitHub 的推薦與評價
General rules · Never use __ or _ prefix for variables/functions/macros/types. This is reserved for C language itself · Use only lowercase characters for ... ... <看更多>
coding style c 在 [討論] 對於同事的coding style感到很感冒- 看板C_and_CPP 的推薦與評價
文有點長
由於跟外國同事共同開發程式互相有code review.
某位同事寫的code已經有點超過了, 並且會干預其他人如果不是他那種style寫法 會要求
改正
以下是 每一種寫法 我標數字 目的是希望大家可以給我一些建議是不是他太超過還是我
還無法體會他的好
1.
auto v = Foo<int>{};
auto v = vector<int>{};
// 永遠使用{}, {} 在container上很好讀, 但他不管怎樣一定是{}, ()已近乎消失
// 永遠auto =
// vector<int> v; 臭了嗎....
我個人覺得不該濫用 "等號"
我有用一些觀點例如
copy cstor被delete情況, 只是因為你現在用c++17才給過, 建議他可以考慮相容c++14
但也是被駁回 說 不需考慮.
int a = 1; 寫成 int a{1}就很怪
Foo f{1,2,3}; 會讓我以為他提供initializer_list 的建構子
殊不知其實只是想呼叫 Foo(int,int,int)版本的, 這樣寫真的是被鼓勵的嗎?
我覺得要變通而不是完全棄用 () 建構
2. 承上
auto ptr = static_cast<Foo*>(nullptr);
就是不肯 Foo*ptr = nullptr;
甚至他寫
struct Data
{
auto A = std::string{};
auto B = ENUM::X;
auto C = int{};
auto id = static_cast<add_pointer<GUID>::type>(nullptr);
}
這很誇張
我對於struct肯定是不用auto
甚至我想問各位 struct 每個element都給初始直 這是好的嗎?
對我來講這是使用這struct的人的義務
Data d{....給初始直}
or
d.A =
d.B = 一個一個給
不知道各位喜歡哪種 針對struct
3. 承上
auto p = std::add_pointer<void>::type{XXX};
auto p = std::add_pointer<int>::type{...};
之前他因為不知道std有提供add_pointer, 還刻意寫一個traits 為了寫出這行
int* p = ....; 竟然不是他腦中的首選....我實在無法理解
4. 承上
auto Foo(..............................................................) ->
void
auto Bar(..............................................................) ->
std::vector<...>
永遠都是auto -> type 的寫法
甚至
auto main(..) -> void
這trailing return type我一直無法體會好處,除非要deduction不然到底優點是什麼?
5.
auto const* p = ....;
基本上這沒問題 但是多數人都是const auto* p; 但她卻堅持不follow多數
6.
大量使用3rd MACRO,讓程式碼呈現類似
XXX_RETURN_YY_IF(Method());
LOG_ERROR_IF(!rc);
auto XXX -> noexcept
TRY();
CATCH_RETURN();
THROW_IF(.....);
只要他寫的code都是這種長相的....說真的對我來講好難讀...
甚至寫一段程式沒用到macro 還會擔心是不是有macro可套
7. 堅持C++ exception 一定比error code來的好
所以要求團隊有error都要用exception, 如果實作上用exception會不好設計的話請提出
來
當成特例來討論
對於noexcept有沒有加非常計較跟堅持
如果設計dll
errorcode dllexport... API()
{
try
{
auto rc = XXX();
if(rc == FAILED) { throw yyyy; 讓下面接}
return success;
}
catch(...)
{
return yyy;
}
}
為了用exception....但又不能往dll外丟 竟然自丟自接...無法理解
8.
std::size() std::data() std::begin() std::end()
只要用了
type.size() type.data() type.begin type.end都會被逼著改...
我想說的是 如果寫template code當然用std::xxx會更generic....但不是, 都是在非te
mplate情形,用自己member 合情合理(是不是可以減少compile 時間,因為不用產生tem
plate程式碼?)
9.
寫出
std::chrono::....
會被要求改成namespace chrono = std::chrono
這我有點傻眼 寫std::不是明確又更好理解嗎?
10.
template<class T>
class Foo
{
void Bar(T&& t){
Baz(std::forward<T>(t));
}
};
堅持說是用forward, 給他很多例子跟gcc vector實作也無法接受...
但因為結果論 是一樣的效果,所以我說服失敗,反倒是被質疑只寫std::move是想少打字
吧?
11.
class Foo
{
std::string s{};
vector<int> v{};
int a{};
Type x{};
};
這邊要說的是....{}固然沒問題, 但 不加不是更簡潔好讀?
int a{} 為什麼就是不肯 = 0? 甚至 有時候會寫 int a{0};
12. 幾乎寫一般函數都寫在header然後冠上inline(一看也覺得不可能inline成功的)
理由說 有文章說讓compiler自己決定能不能inline, 程式效能更好(成功算賺到).
class的話也是盡可能實作寫header (反正內部的code, 不是要變成shared library)
其實wiki也寫了缺點,header only難道在非template library上有也是被鼓勵的嗎?(
假設code size變大 不重要)
13. 承上
class Foo{ static int a; 堅持不寫 一定要寫 inline int a;}
他認為的好處是 不用特別找cpp寫定義, 更能貫徹header only 的寫法
14. 因為會寫windows平台的程式
他會把用到的win32 api都wrap一層
例如
raii_handle
CreateThread(...)
{
auto h = ::Creathread(...)
THROW_IF(!h)
return h;
}
之類的 方向是把win32 error code base的api變成exception based....
C++真的exception是被鼓勵的嗎? 對我來看 B>Z阿...
其實還有很多而且越讀他的code會越多奇怪的堅持產生
例如
return std::move(local var)...
剛好vc似乎不會跳warning變成好像很難說服他改掉(我說這多餘的,且限制最佳化了,
但被無視)
對方大方向是
大量使用auto , 增加"可讀性", 讀者or呼叫者不care型態 用auto完全的對他來講好讀
(我完全相反 讓我理解力大減 我還要多跳過去定義看型別 去思考是否有問題,
auto XXX(....很長)-> type , 我為了要看type我還要拖曳到右邊看.)
對方認定
vector<int> v;是 c style 初始方法 要大家用C++ style
auto v = vector<int>{};寫
對方非常愛貼文章
只要你提出相反意見他都可以拿文章來回 要我去看文章(還有所謂的AAA style....)
對方是真的花心思會去follow youtube cppconf的talk....
但共識久了 會覺得對方 真的是教課書說什麼就什麼 而且似乎查資料只查他認同的
關鍵字很可能都是下
"exception better than error code c++" 之類的找文章....
我不喜歡這種照本宣科的, 但只要他一貼文章大概就句點了 (又臭又長, 我也不想細看
反正用英文講不贏)
請各位提供一些意見
當然這些都是被網路上廣泛討論的topic...但這版似乎沒特別針對這些來討論
希望得到大家的回饋,有些也許真的是被鼓勵的但我還沒學到真諦
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.130.34 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1589132323.A.144.html
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 01:44:42
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 01:49:03
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 01:52:03
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 01:59:26
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 02:04:12
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 02:25:15
※ 編輯: lovejomi (27.247.130.34 臺灣), 05/11/2020 02:35:04
... <看更多>